#ifndef XLCOMM_BASE_CURRENTTHREAD_H_
#define XLCOMM_BASE_CURRENTTHREAD_H_

#include <stdint.h>

#include <string>

#include "xlcomm/define.h"
#include "xlcomm/noncopyable.h"

namespace xlcomm {

// 当前线程相关
class XLCOMM_API CurrentThread : noncopyable {
 public:
  // 获取当前线程ID
  static uint64_t GetThreadId();

  // 打印函数调用堆栈
  static std::string StackTrace();
};

}  // namespace xlcomm

#endif  // XLCOMM_BASE_CURRENTTHREAD_H_